草庐IT

[github]修改host实现github流畅访问

全部标签

ruby - 为什么 Ruby 似乎随机访问目录中的文件?

这是设计使然吗?代码如下:classFileRenamerdefRenameFiles(folder_path)files=Dir.glob(folder_path+"/*")endendputs"Renamingfiles..."renamer=FileRenamer.new()files=renamer.RenameFiles("/home/papuccino1/Desktop/Test")putsfilesputs"Renamingcomplete."获取文件的顺序似乎是随机的,而不是它们在Nautilus中显示的那样。这是设计使然吗?我只是好奇。 最

ruby - 如何修改矩阵(Ruby std-lib Matrix 类)?

我理解RubystdlibMatrix是不可修改的,也就是说,例如。m=Matrix.zero(3,4)不会写m[0,1]=7但我非常想做...我可以用笨拙的编程来做,比如defmodify_value_in_a_matrix(matrix,row,col,newval)ary=(0...m.row_size).map{|i|m.rowi}.map(&:to_a)ary[row][col]=newvalMatrix[*ary]end...或者作弊,比如Matrix.send:[]=,0,1,7但我想知道,这一定是人们一直遇到的问题。有没有一些标准的、习惯的方法可以做到这一点,而不必使用

ruby - 如何通过 http 使用 Ruby 访问 URL 并读取输出?

到目前为止,我已经能够将它们拼接在一起:)beginopen("http://www.somemain.com/"+path+"/"+blah)rescueOpenURI::HTTPError@failure+=painting.permalinkelse@success+=painting.permalinkend但是我如何读取我要调用的服务的输出呢? 最佳答案 Open-URI扩展了open,因此您将获得一种返回的IO流:open('http://www.example.com')#=>#你必须阅读它才能获得内容:open('h

ruby - 访问类外的常量

当我想访问类Test中的常量CONST时classTestCONST=7end在课外,我必须这样做:putsTest::CONST为什么在执行此操作时会出现错误?putsobj::CONST如果obj是Test类的一个对象,为什么我尝试通过该对象访问常量时会出错? 最佳答案 因为实例对象和类对象不是一回事。命名空间存在于类对象上,不存在于实例上。但是,您可以向实例询问它的类,然后深入研究它。putsobj.class::CONST 关于ruby-访问类外的常量,我们在StackOverf

ruby-on-rails - 如何在 Ruby 中访问私有(private)类方法?

给定一个Ruby类:classMyClassdefself.my_class_methodputs"classmethod"endprivatedefmy_methodputs"regularmethod"endprivate_class_method:my_class_methodend要访问私有(private)方法,我可以在类对象上调用.send(:my_method),但这对类方法有何作用? 最佳答案 你应该这样做:classMyClassdefself.my_class_methodputs"classmethod"end

ruby - Ruby <=> 组合器的实现

并不少见,有人想实现(比较,或“宇宙飞船”)产品数据类型的运算符,即具有多个字段的类(所有这些(我们希望!)已经实现了),按特定顺序比较字段。def(o)f1o.f1&&(return1)f2o.f2&&(return1)return0end这既乏味又容易出错,尤其是对于很多字段。它很容易出错,以至于我经常觉得我应该对该函数进行单元测试,这只会增加乏味和冗长。Haskell提供了一种特别好的方法来做到这一点:importData.Monoid(mappend)importData.Ord(comparing)--Fromthestandardlibrary:--dataOrdering

ruby - 使用 Ruby Net 实现重新连接策略

我正在开发一个将XML发布到某些网络服务的小型应用程序。这是使用Net::HTTP::Post::Post完成的。但是,服务提供商建议使用重新连接。类似于:第一个请求失败->2秒后重试第二个请求失败->5秒后重试第三次请求失败->10秒后重试...这样做的好方法是什么?简单地在循环中运行以下代码,捕获异常并在一定时间后再次运行?或者还有其他聪明的方法吗?也许Net包甚至有一些我不知道的内置功能?url=URI.parse("http://some.host")request=Net::HTTP::Post.new(url.path)request.body=xmlrequest.con

ruby - 如何访问父/兄弟模块方法

有没有什么方法可以在classQux中访问baz_method而无需首先提及模块namespace?当有很多嵌套模块时,代码看起来不干净。moduleFoomoduleBarmoduleBazclassQuxdefself.qux_methodFoo::Bar::Baz.baz_methodendenddefself.baz_methodendendendend 最佳答案 常量首先在词法封闭模块中查找,然后在继承链中向上查找。moduleFoomoduleBarmoduleBazclassQuxdefself.qux_methodB

ruby - 在 ruby​​ 中优雅地实现 'map (+1) list'

title中的短代码是在Haskell中,它做了类似的事情list.map{|x|x+1}ruby。虽然我知道那种方式,但我想知道的是,是否有更优雅的方式来像在Haskell中一样在ruby​​中实现同样的事情。我真的很喜欢ruby​​中的to_proc快捷方式,就像这样:[1,2,3,4].map(&:to_s)[1,2,3,4].inject(&:+)但这只接受Proc和方法之间完全匹配的参数数。我正在尝试寻找一种方法,允许将一个或多个参数额外传递到Proc,而不像第一个演示那样使用无用的临时block/变量。我想这样做:[1,2,3,4].map(&:+(1))ruby是否有类似

ruby-on-rails - Rails 计数器缓存及其实现

我正在尝试掌握Rails计数器缓存功能,但无法完全掌握它。假设我们有3个模型ABCA属于B或C,取决于字段key_type和key_id。key_type表示A属于B还是C,因此如果key_type="B"则记录属于B,否则属于C。在我的模型a.rb中,我定义了以下关联:belongs_to:b,:counter_cache=>true,:foreign_key=>"key_id"belongs_to:c,:counter_cache=>true,:foreign_key=>"key_id"和在b和c模型文件中has_many:as,:conditions=>{:key_type=>"